#ifndef INTERSECTION_H
#define INTERSECTION_H

#include "Point.h"
#include "Vecteur.h"
#include "Couleur.h"
#include "Rayon.h"

class Objet;

class Intersection
{
private:
	Point p;
	Couleur couleur;
	Vecteur normale;
	float t;
	Objet *obj;


public:
	Intersection();
	Intersection(Point pt , Couleur c, Vecteur normale, float t);
	Intersection(Intersection const& inter);
	~Intersection();

	Intersection& operator=(Intersection const& inter);

	Point getPoint();
	Couleur getCouleur();
	Vecteur getNormale();
	float getT();
	Objet* getObjet();

	void setPoint(Point p);
	void setNormale(Vecteur v);
	void setCouleur(Couleur c);
	void setT(float t);
	void setObjet(Objet* objet);

	Rayon calculRayonRef(Vecteur rayonDir, Objet* obj);
	Rayon calculRayonTrans(Vecteur rayonDir, float nRefracAvant, Objet* obj);
	Rayon calculRayonGlossy(Vecteur rayonDir, float random, Objet* obj);
};

#endif